1. Field of the Invention
The invention relates to a method and apparatus to be used in a computer system with an operating system having server regions which are managed by a workload manager to provide resources for processing work units received from application programs. The invention also relates to a program and program product.
2. Description of the Related Art
In computer systems workload management is a concept whereby units of work that are managed by an operating system are organized into classes (referred to as service classes) which have assigned system resources in accordance with predefined goals. Resources are reassigned from a donor class to a receiver class if the improvement in performance of the receiver class resulting from such reassignment exceeds the degradation in performance of the donor class. Thus, reassignment takes place if there is a net positive effect in performance as determined by predefined performance criteria. Workload management of this type differs from resource management performed by most known operating systems. The assignment of resources is determined not only by its effect on the work units to which the resources are reassigned, but also by its effect on the work units from which they are taken.
Server management combines the effect of workload management with systems in which incoming work requests are placed in a queue for assignment to an available server. Since the frequency at which incoming requests arrive may not be readily controlled, the principal means of controlling the system performance of systems which use work request queues is control of the number of servers. Server management starts and stops servers in a system in compliance with the goal achievement of other work units executing in the system. Server management will only start a server if the performance of other work units is not degraded and will remove servers if more work requests of upper service classes demand resources which are allocated to a server in order to achieve their goals.
Workload and server management of this type are, for example, disclosed in the following patents, incorporated herein by reference:                U.S. Pat. No. 5,504,894 to D. F. Ferguson et al., entitled “Workload Manager for Achieving Transaction Class Response Time Goals in a Multiprocessing System”;        U.S. Pat. No. 5,473,773 to J. D. Aman et al., entitled “Apparatus and Method for Managing a Data Processing System Workload According to Two or More Distinct Processing Goals”;        U.S. Pat. No. 5,537,542 to C. K. Eilert et al., entitled “Apparatus and Method for Managing a Server Workload According to Client Performance Goals in a Client/Server Data Processing System”;        U.S. Pat. No. 5,974,462 to C. K. Eilert et al., entitled “Method and Apparatus for Controlling the Number of Servers in a Client/Server System”; and        U.S. Pat. No. 5,675,739 to C. K. Eilert et al., entitled “Apparatus and Method for Managing a Distributed Data Processing System Workload According to a Plurality of Distinct Processing Goal Types”.        
In the known systems the workload management components consider a server as an entity disregarding the fact that the server itself can consist of resources and multiple independent execution units or server instances such as, for example, processes scheduling multiple execution threads. In known computer systems the system programmer creating the operating system for controlling the system or the application programmer creating the server application is responsible for determining the number of parallel execution units or server instances which can execute in a server. The operating system and the workload management component control the effect of the total number of servers with respect to the total system performance and the performance achieved by work units executing in different service classes. They do not manage the effect of balancing execution units per server. For the system programmer it is often difficult to determine a suitable number of execution units per server due to a lack of knowledge of the actual resource constraints to which the server itself is exposed. An application programmer may know about resource constraints of the server but may not be aware of the way the server is utilized at execution time. For example, the developers very often don't know the actual execution environment. The resource consumption may be influenced by the amount of data to be processed. Therefore, adjusting the number of execution units is very often not optimal or requires a lengthy tuning process by skilled IT personnel.